// 链路调测
import vueInstance from '@/main.js'
import { handleEmpty } from '@/utils/common'

const getUserId = () => {
  return vueInstance.$store.getters.getUserId
}

/**
 * 参数定义
 *
 * @param api
 *            接口地址
 * @param item
 *            操作项（必须是相应页面的菜单名称，否则操作日志页面根据操作项下拉列表会对应不上）
 * @param terminal
 *            操作命令（具体操作名称，如：登录，查询，修改设备名称等）
 * @param object
 *            操作对象（具体操作的对象名称，如：设备名，区域名等）
 * @param currentUserId
 *            当前操作用户ID
 * @param i18nKey
 *            国际化里面的key
 * @param reqData
 *            接口里携带的参数
 */

export default [
  {
    api: '/alarmRecord/confirm',
    item: 'MENU_ALARM_RECORD', // 活动告警
    terminal: 'CONFIRM_ACTIVE_ALARM', // 确认告警（确认）
    i18nKey: 'CONFIRM_ALARM_LOG',
    object: '/',
    formatter(reqData) { // 格式化content
      const currentUserId = getUserId() // 当前平台登录用户
      const {
        deviceId = '',
        startTime = '',
        alarmTypeText = '',
        confirmDesc = ''
      } = reqData
      this.object = `${deviceId}-${alarmTypeText}-${startTime}`
      return JSON.stringify({
        deviceId,
        startTime,
        alarmTypeText,
        confirmDesc,
        currentUserId: currentUserId,
        i18nKey: this.i18nKey
      })
    }
  },
  {
    api: '/alarmRecord/cancel',
    item: 'MENU_ALARM_RECORD', // 活动告警
    terminal: 'CANCEL_ACTIVE_ALARM', // 取消告警（取消活动告警）
    i18nKey: 'CANCEL_ALARM_LOG',
    object: '/',
    formatter(reqData) { // 格式化content
      const currentUserId = getUserId() // 当前平台登录用户
      const {
        deviceId = '',
        startTime = '',
        alarmTypeText = '',
        cancelDesc = ''
      } = reqData
      this.object = `${deviceId}-${alarmTypeText}-${startTime}`
      return JSON.stringify({
        deviceId,
        startTime,
        alarmTypeText,
        cancelDesc,
        currentUserId: currentUserId,
        i18nKey: this.i18nKey
      })
    }
  },
  {
    api: '/taskGroup/stopTaskGroup',
    item: 'MENU_PROCESS_LIST', // 流程列表
    terminal: 'STOP_THE_MAIN_PROCESS', // 停止主流程
    i18nKey: 'STOP_THE_MAIN_PROCESS_LOG',
    object: '/',
    formatter(reqData) { // 格式化content
      const currentUserId = getUserId() // 当前平台登录用户
      const { processName = '' } = reqData
      this.object = processName
      return JSON.stringify({
        processName,
        currentUserId: currentUserId,
        i18nKey: this.i18nKey
      })
    }
  },
  {
    api: '/taskGroup/cancelTaskGroup',
    item: 'MENU_PROCESS_LIST', // 流程列表
    terminal: 'CANCEL_MAIN_PROCESS', // 取消主流程
    i18nKey: 'CANCEL_MAIN_PROCESS_LOG',
    object: '/',
    formatter(reqData) { // 格式化content
      const currentUserId = getUserId() // 当前平台登录用户
      const { processName = '' } = reqData
      this.object = processName
      return JSON.stringify({
        processName,
        currentUserId: currentUserId,
        i18nKey: this.i18nKey
      })
    }
  },
  {
    api: '/mainTask/stopMainTask',
    item: 'MENU_PROCESS_LIST', // 流程列表
    terminal: 'STOP_MAINTASK', // 停止主任务
    i18nKey: 'STOP_MAINTASK_LOG',
    object: '/',
    formatter(reqData) { // 格式化content
      const currentUserId = getUserId() // 当前平台登录用户
      this.object = reqData.logParams.taskId || ''
      return JSON.stringify({
        ...reqData.logParams,
        currentUserId: currentUserId,
        i18nKey: this.i18nKey
      })
    }
  },
  {
    api: '/mainTask/cancelMainTask',
    item: 'MENU_PROCESS_LIST', // 流程列表
    terminal: 'CANCEL_MAINTASK', // 取消主任务
    i18nKey: 'CANCEL_MAINTASK_LOG',
    object: '/',
    formatter(reqData) { // 格式化content
      const currentUserId = getUserId() // 当前平台登录用户
      this.object = reqData.logParams.taskId || ''
      return JSON.stringify({
        ...reqData.logParams,
        currentUserId: currentUserId,
        i18nKey: this.i18nKey
      })
    }
  },
  {
    api: '/subTask/stopSubTask',
    item: 'MENU_PROCESS_LIST', // 流程列表
    terminal: 'STOP_SUBTASK', // 停止子任务
    i18nKey: 'STOP_SUBTASK_LOG',
    object: '/',
    formatter(reqData) { // 格式化content
      const currentUserId = getUserId() // 当前平台登录用户
      this.object = reqData.logParams.taskId || ''
      return JSON.stringify({
        ...reqData.logParams,
        currentUserId: currentUserId,
        i18nKey: this.i18nKey
      })
    }
  },
  {
    api: '/subTask/cancelSubTask',
    item: 'MENU_PROCESS_LIST', // 流程列表
    terminal: 'CANCEL_SUBTASK', // 取消子任务
    i18nKey: 'CANCEL_SUBTASK_LOG',
    object: '/',
    formatter(reqData) { // 格式化content
      const currentUserId = getUserId() // 当前平台登录用户
      this.object = reqData.logParams.taskId || ''
      return JSON.stringify({
        ...reqData.logParams,
        currentUserId: currentUserId,
        i18nKey: this.i18nKey
      })
    }
  }
]
